[
    async function( kuo,Context,context){
        Context.headers["content-type"] = 'application/json; charset=UTF-8';
        var $THIS = this;
        let $features =  this.$features = await Kuoplus("cms");
        let $DATA = Object.assign({},this.$DATA);
        let path = strtolower(kuo.Path['0']?kuo.Path['0']:"index");
        let hanshu = "JSON_API_"+path;
        if($THIS[hanshu]){
            let HCTime = Mode("Tools").Int($features.configure['缓存时间']?$features.configure['缓存时间']['0']:0);
            var TXMM = ""+($features.configure['通信密码']?$features.configure['通信密码']['0']:"");
            let $POSTT = [];
            let TONGKey = "";
            if(kuo.post){
                if(kuo.post.key && kuo.post.key != ""){
                    TONGKey = ""+kuo.post.key;
                    delete(kuo.post.key);
                }
                for(var xxx in kuo.post){
                    if(xxx != "apptoken"){
                        $POSTT.push(json_encode(kuo.post[xxx]));
                    }
                }
            }
            if(TXMM != ""){
                if(await this.TongXinKey(implode('_',kuo.URL)+'_'+implode('_',kuo.post) ,TONGKey,TONGKey,kuo.post.atime?kuo.post.atime:0)){
                    $DATA.code = -1;
                    $DATA.data =[];
                    $DATA.msg = "Validation error";
                    Context.body = json_encode($DATA);
                    return ;
                }
            }

            let HASH ="json/"+Md5(kuo.class+'_'+kuo.func_+'_'+implode('_',kuo.Path)+'_'+implode('_',$POSTT));

            Context.Cache = true;
            if(HCTime  > 0){
                let neirong = await Mem.Get(HASH);
                if(neirong){
                    Context.body = neirong
                    return ;
                }
            }
            Context.body = await $THIS[hanshu](kuo,Context,context);
            if(HCTime  > 0 && Context.Cache){
                await Mem.Set(HASH,Context.body,HCTime);
            }
        }else{
            $DATA.msg = hanshu+" Not";
            Context.body = json_encode($DATA);
        }
    }
]